home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / modellib / malloc_init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-16  |  5.1 KB  |  127 lines

  1. /*
  2. ### allocate memory dynamically after selecting or loading a new model ###
  3. */
  4.  
  5. #include <suntool/sunview.h>
  6. #include <suntool/canvas.h>
  7. #include <suntool/panel.h>
  8.  
  9. void malloc_init()
  10. {
  11.     int *ivector(),**imatrix();
  12.     double *dvector(),**dmatrix();
  13.     char **svector();
  14.     extern int batch_on,func_on,var_dim,full_dim,func_dim,param_dim,aux_max;
  15.     extern int var_dim_max,func_dim_max,param_dim_max,all_dim_max;
  16.     extern int *aux_on,*aux_win_mode,*aux_rescale,**aux_cur_index;
  17.     extern double *var_i,*var_polar_i,*var_min,*var_max,*var_polar_min,*var_polar_max;
  18.     extern double *v,*t_v,*t_vf,*t_va,*xoffset,*int_yscal,*period_len;
  19.     extern double *win_var_i,*win_var_f,*win_var_i_old;
  20.     extern double *func,*func_i,*func_f,*func_min,*func_max,*func_min_top,*func_max_top;
  21.     extern double *all_min,*all_max,*all_min_top,*all_max_top;
  22.     extern double *param,*param_min,*param_max,*param_min_top,*param_max_top;
  23.     extern double **aux_x_max,**aux_x_min;
  24.     extern char **var_label,**var_polar_label,**func_label,**param_label,**win_var_label,**all_label;
  25.     extern Frame *aux_frame;
  26.     extern Canvas *aux_canvas;
  27.     extern Cursor *aux_cursor;
  28.     extern Panel *aux_panel;
  29.     extern Pixwin **aux_pw;
  30.     extern Panel_item *param_item,*var_i_item,*func_i_item,*func_f_item,*all_min_item,*all_max_item,*int_yscal_item;
  31.     extern Panel_item *aux_quit_item,*aux_copy_item,*aux_win_mode_item,*aux_x_item,*aux_y_item,*aux_x_min_item,*aux_x_max_item,*aux_y_min_item,*aux_y_max_item;
  32.  
  33.     full_dim = (func_on ? var_dim+func_dim : var_dim);
  34.  
  35.     var_i = dvector(0,var_dim -1);
  36.     var_polar_i = dvector(0,var_dim-1);
  37.     var_min = dvector(0,var_dim-1);
  38.     var_max = dvector(0,var_dim-1);
  39.     var_polar_min = dvector(0,var_dim-1);
  40.     var_polar_max = dvector(0,var_dim-1);
  41.  
  42.     win_var_i = dvector(0,var_dim -1);
  43.     win_var_i_old = dvector(0,var_dim -1);
  44.     win_var_f = dvector(0,var_dim -1);
  45.  
  46.     func = dvector(0,func_dim-1);
  47.     func_i = dvector(0,func_dim-1);
  48.     func_f = dvector(0,func_dim-1);
  49.     func_min = dvector(0,func_dim-1);
  50.     func_max = dvector(0,func_dim-1);
  51.  
  52.     /*
  53.      * In order not to waste the memory, free and reallocate memory
  54.      * dynamically when func_on is turned on by event handlers.
  55.      */
  56.     all_min = dvector(0,full_dim+param_dim-1);
  57.     all_max = dvector(0,full_dim+param_dim-1);
  58.     all_min_top = dvector(0,full_dim+param_dim-1);
  59.     all_max_top = dvector(0,full_dim+param_dim-1);
  60.     aux_x_min = dmatrix(0,full_dim+param_dim-1,0,aux_max-1);
  61.     aux_x_max = dmatrix(0,full_dim+param_dim-1,0,aux_max-1);
  62.  
  63.  
  64.     param = dvector(0,param_dim-1);
  65.     param_min = dvector(0,param_dim-1);
  66.     param_max = dvector(0,param_dim-1);
  67.     param_min_top = dvector(0,param_dim-1);
  68.     param_max_top = dvector(0,param_dim-1);
  69.  
  70.     period_len = dvector(0,full_dim+param_dim-1);
  71.  
  72.     v = dvector(0,full_dim-1);
  73.     t_v = dvector(0,full_dim-1);
  74.     t_vf = dvector(0,full_dim-1);
  75.     t_va = dvector(0,full_dim+param_dim-1);
  76.  
  77.     aux_win_mode = ivector(0,aux_max-1);
  78.     aux_on = ivector(0,aux_max-1);
  79.     aux_rescale = ivector(0,aux_max-1);
  80.     aux_cur_index = imatrix(0,aux_max-1,0,1);
  81.     
  82.     all_label = svector(0,all_dim_max-1);
  83.     win_var_label = svector(0,all_dim_max-1);
  84.     param_label = svector(0,param_dim_max-1);
  85.     func_label = svector(0,func_dim_max-1);
  86.     /* THe way it should be */
  87.     /*
  88.     all_label = svector(0,full_dim+param_dim-1);
  89.     win_var_label = svector(0,full_dim+param_dim-1);
  90.     param_label = svector(0,param_dim-1);
  91.     func_label = svector(0,func_dim-1);
  92.     */
  93.  
  94.     var_label = svector(0,var_dim_max -1);
  95.     var_polar_label = svector(0,var_dim_max -1);
  96.  
  97.     int_yscal = dvector(0,var_dim-1);
  98.     xoffset = dvector(0,var_dim-1); 
  99.  
  100.     if(!batch_on){
  101.         param_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * param_dim);
  102.         var_i_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * var_dim);
  103.         func_i_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * func_dim);
  104.         func_f_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * func_dim);
  105.         all_min_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * (full_dim+param_dim));
  106.         all_max_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * (full_dim+param_dim));
  107.         int_yscal_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * var_dim);
  108.  
  109.         /* aux windows */
  110.         aux_frame = (Frame *) malloc((unsigned) sizeof(Frame) * aux_max);
  111.         aux_canvas = (Canvas *) malloc((unsigned) sizeof(Canvas) * aux_max);
  112.         aux_cursor = (Cursor *) malloc((unsigned) sizeof(Cursor) * aux_max);
  113.         aux_panel = (Panel *) malloc((unsigned) sizeof(Panel) * aux_max);
  114.         aux_pw = (Pixwin **) malloc((unsigned) sizeof(Pixwin *) * aux_max);
  115.         aux_quit_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  116.         aux_win_mode_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  117.         aux_copy_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  118.         aux_x_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  119.         aux_y_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  120.         aux_x_min_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  121.         aux_x_max_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  122.         aux_y_min_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  123.         aux_y_max_item = (Panel_item *) malloc((unsigned) sizeof(Panel_item) * aux_max);
  124.     }
  125.     (int) default_init();
  126. }
  127.